<?php
class ProductModel extends RelationModel {
	protected $patchValidate = 1;
	//protected $autoCheckFields = 1;
	protected $_link = array(
		'ProductData'=>array(
			'mapping_type' =>HAS_ONE,
			'class_name' => 'ProductData',
			'mapping_name'=>'ProductData',
			'foreign_key' =>'id',
			//'mapping_fields'=>array('id','content'),
			//'as_fields'=>'content,id:goodid',
			//'condition'=>'',//筛选条件
			// 定义更多的关联属性
		),
		'Attachment'=>array(
			'mapping_type' =>HAS_MANY,
			'class_name' => 'Attachment',
			'mapping_name'=>'Attachment',
			'foreign_key' =>'id',
			//'mapping_fields'=>array('id','content'),
			//'as_fields'=>'content,id:goodid',
			//'condition'=>'',//筛选条件
			// 定义更多的关联属性
		),

	);
	
	protected $_validate = array(
		array('uid','checkUid','请您先登陆再发布信息。',1,'callback'),
		array('catid','require','请选择产品大分类。'), 
		array('typeid','require','请选择产品小分类。'), 
		array('areaid','require','请选择地区。'), 
		array('aid','require','请选择省市。'), 
		array('title','require','请填写相应的标题。'), //默认情况下用正则进行验证
		array('keywords','require','请填写信息关键词。'), // 在新增的时候验证name字段是否唯一
		array('price','currency','填写的价格的范围不正确'), // 当值不为空的时候判断是否在一个范围内
		array('unitname','checkUnitname','填写的计量单位必须填写',0,'callback'), // 自定义函数验证
		array('cycle','checkCycle','填写的发货周期范围不正确',0,'callback'), // 自定义函数验证密码格式
		array('least','checkLeast','填写的最小起订量值不正确',0,'callback'), // 当值不为空的时候判断是否在一个范围内
		array('totalinfo','require','请填写供货总量说明'), 
		array('description','checkDescription','产品摘要不能少于20个字',0,'callback'), // 当值不为空的时候判断是否在一个范围内
		array('content','checkContent','产品介绍不能少于50个字',1,'callback'), // 当值不为空的时候判断是否在一个范围内


	 );

	//检测计量单位是否合理
	function checkUid(){
		$uid = $_SESSION[C('USER_AUTH_KEY')];
		if($uid<=0 || $uid=='')
			return false;
	}

	//检测计量单位是否合理
	function checkUnitname(){
		if($_POST['unit']<=0 && $_POST['unitname']=='')
			return false;
	}



	//检测发货周期是否合理
	function checkCycle(){
		if($_POST['cycle']<=0 || $_POST['cycle']>365)
			return false;
	}
	
	//检测最小起订量是否合理
	function checkLeast(){
		$least = trim($_POST['least'])+0;
		if($least>99999 || (!is_int($least))){
			return false;
		}
	}

	//检测产品摘要是否合理
	function checkDescription(){
		$content = trim($_POST['description']);
		if($content == '' || strlen($content)<20){
			return false;
		}
	}
	
	//检测产品介绍是否合理
	function checkContent(){
		$content = trim($_POST['content']);
		if($content == '' || strlen($content)<50){
			return false;
		}
	}

	/*
	protected function _facade($data) {
		 // 检查非数据字段
        if(!empty($this->fields)) {
            foreach ($data as $key=>$val){
                if(!in_array($key,$this->fields,true)){
                    unset($data[$key]);
                }elseif(is_scalar($val)) {
                    // 字段类型检查
                    $this->_parseType($data,$key);
                }
            }
        }
        // 安全过滤
        if(!empty($this->options['filter'])) {
            $data = array_map($this->options['filter'],$data);
            unset($this->options['filter']);
        }
        $this->_before_write($data);
        return $data;
	}*/

}
